home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / libblas / gbmv.z / gbmv
Encoding:
Text File  |  1998-10-30  |  17.6 KB  |  265 lines

  1.  
  2.  
  3.  
  4. ____GGGGBBBBMMMMVVVV((((3333FFFF))))                                                            ____GGGGBBBBMMMMVVVV((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      dgbmv, sgbmv, zgbmv, cgbmv - BLAS Level Two Matrix-Vector Product
  10.  
  11.  
  12. FFFFOOOORRRRTTTTRRRRAAAANNNN 77777777 SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ddddggggbbbbmmmmvvvv(((( ttttrrrraaaannnnssss,,,,mmmm,,,,nnnn,,,,kkkkllll,,,,kkkkuuuu,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
  14.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ttttrrrraaaannnnssss
  15.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, mmmm,,,, kkkkllll,,,, kkkkuuuu,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy
  16.            ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn   aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  17.            ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn   aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****)))),,,, yyyy((((****))))
  18.  
  19.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssggggbbbbmmmmvvvv(((( ttttrrrraaaannnnssss,,,,mmmm,,,,nnnn,,,,kkkkllll,,,,kkkkuuuu,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
  20.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ttttrrrraaaannnnssss
  21.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, mmmm,,,, kkkkllll,,,, kkkkuuuu,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy
  22.            rrrreeeeaaaallll               aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  23.            rrrreeeeaaaallll               aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****)))),,,, yyyy((((****))))
  24.  
  25.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee zzzzggggbbbbmmmmvvvv(((( ttttrrrraaaannnnssss,,,,mmmm,,,,nnnn,,,,kkkkllll,,,,kkkkuuuu,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
  26.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ttttrrrraaaannnnssss
  27.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, mmmm,,,, kkkkllll,,,, kkkkuuuu,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy
  28.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  29.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****)))),,,, yyyy((((****))))
  30.  
  31.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ccccggggbbbbmmmmvvvv(((( ttttrrrraaaannnnssss,,,,mmmm,,,,nnnn,,,,kkkkllll,,,,kkkkuuuu,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
  32.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        ttttrrrraaaannnnssss
  33.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, mmmm,,,, kkkkllll,,,, kkkkuuuu,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy
  34.            ccccoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  35.            ccccoooommmmpppplllleeeexxxx            aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****)))),,,, yyyy((((****))))
  36.  
  37.  
  38. CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  39.      vvvvooooiiiidddd ddddggggbbbbmmmmvvvv(((( ttttrrrraaaannnnssss,,,,mmmm,,,,nnnn,,,,kkkkllll,,,,kkkkuuuu,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
  40.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee    ttttrrrraaaannnnssss;;;;
  41.            IIIInnnntttteeeeggggeeeerrrr            nnnn,,,, mmmm,,,, kkkkllll,,,, kkkkuuuu,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy;;;;
  42.            ddddoooouuuubbbblllleeee             aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  43.            ddddoooouuuubbbblllleeee             ((((****aaaa))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]],,,, ((((****yyyy))))[[[[ nnnn ]]]];;;;
  44.  
  45.      vvvvooooiiiidddd ssssggggbbbbmmmmvvvv(((( ttttrrrraaaannnnssss,,,,mmmm,,,,nnnn,,,,kkkkllll,,,,kkkkuuuu,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
  46.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee    ttttrrrraaaannnnssss;;;;
  47.            IIIInnnntttteeeeggggeeeerrrr            nnnn,,,, mmmm,,,, kkkkllll,,,, kkkkuuuu,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy;;;;
  48.            ffffllllooooaaaatttt              aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  49.            ffffllllooooaaaatttt              ((((****aaaa))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]],,,, ((((****yyyy))))[[[[ nnnn ]]]];;;;
  50.  
  51.      vvvvooooiiiidddd zzzzggggbbbbmmmmvvvv(((( ttttrrrraaaannnnssss,,,,mmmm,,,,nnnn,,,,kkkkllll,,,,kkkkuuuu,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
  52.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee    ttttrrrraaaannnnssss;;;;
  53.            IIIInnnntttteeeeggggeeeerrrr            nnnn,,,, mmmm,,,, kkkkllll,,,, kkkkuuuu,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy;;;;
  54.            ZZZZoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  55.            ZZZZoooommmmpppplllleeeexxxx            ((((****aaaa))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]],,,, ((((****yyyy))))[[[[ nnnn ]]]];;;;
  56.  
  57.      vvvvooooiiiidddd ccccggggbbbbmmmmvvvv(((( ttttrrrraaaannnnssss,,,,mmmm,,,,nnnn,,,,kkkkllll,,,,kkkkuuuu,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,xxxx,,,,iiiinnnnccccxxxx,,,,bbbbeeeettttaaaa,,,,yyyy,,,,iiiinnnnccccyyyy ))))
  58.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee    ttttrrrraaaannnnssss;;;;
  59.            IIIInnnntttteeeeggggeeeerrrr            nnnn,,,, mmmm,,,, kkkkllll,,,, kkkkuuuu,,,, llllddddaaaa,,,, iiiinnnnccccxxxx,,,, iiiinnnnccccyyyy;;;;
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ____GGGGBBBBMMMMVVVV((((3333FFFF))))                                                            ____GGGGBBBBMMMMVVVV((((3333FFFF))))
  71.  
  72.  
  73.  
  74.            CCCCoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  75.            CCCCoooommmmpppplllleeeexxxx            ((((****aaaa))))[[[[llllddddaaaa****nnnn]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]],,,, ((((****yyyy))))[[[[ nnnn ]]]];;;;
  76.  
  77.  
  78. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  79.      ddddggggbbbbmmmmvvvv, ssssggggbbbbmmmmvvvv, zzzzggggbbbbmmmmvvvv and ccccggggbbbbmmmmvvvv perform one of the matrix-vector
  80.      operations:
  81.  
  82.            y := alpha*A*x + beta*y,   or   y := alpha*A'*x + beta*y,   or
  83.  
  84.            y := alpha*conjg( A' )*x + beta*y,
  85.  
  86.      where alpha and beta are scalars, x and y are vectors and A is an m by n
  87.      band matrix, with kl sub-diagonals and ku super-diagonals.
  88.  
  89.  
  90. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  91.      ttttrrrraaaannnnssss   On entry, ttttrrrraaaannnnssss specifies the operation to be performed as
  92.              follows:
  93.  
  94.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  95.              trans = 'N' or 'n'       y := alpha*A*x + beta*y.
  96.              trans = 'T' or 't'       y := alpha*A'*x + beta*y.
  97.              trans = 'C' or 'c'       y := alpha*conjg( A' )*x + beta*y.
  98.  
  99.              CCCC
  100.              trans = NoTranspose           y := alpha*A*x + beta*y.
  101.              trans = Transpose             y := alpha*A'*x + beta*y.
  102.              trans = ConjugateTranspose    y := alpha*conjg( A' )*x + beta*y.
  103.  
  104.              Unchanged on exit.
  105.  
  106.      mmmm       On entry, mmmm specifies the number of rows of rows of the matrix A.
  107.              mmmm must be at least zero.
  108.              Unchanged on exit.
  109.  
  110.      nnnn       On entry, nnnn specifies the order of the matrix A. nnnn must be at
  111.              least zero.
  112.              Unchanged on exit.
  113.  
  114.      kkkkllll      On entry, kkkkllll specifies the number of sub-diagonals of the matrix
  115.              A.  kkkkllll must satisfy 0000 ....lllleeee.... kkkkllll.
  116.              Unchanged on exit.
  117.  
  118.      kkkkuuuu      On entry, kkkkuuuu specifies the number of super-diagonals of the
  119.              matrix A.  kkkkuuuu must satisfy  0000 ....lllleeee.... kkkkuuuu....
  120.              Unchanged on exit.
  121.  
  122.      aaaallllpppphhhhaaaa   On entry, aaaallllpppphhhhaaaa specifies the scalar alpha.
  123.              Unchanged on exit.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ____GGGGBBBBMMMMVVVV((((3333FFFF))))                                                            ____GGGGBBBBMMMMVVVV((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      aaaa       An array containing the matrix A.
  141.  
  142.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  143.              Array of dimension ( lda, n ).
  144.  
  145.              CCCC
  146.              A pointer to an array of size lda*n containing the matrix A.
  147.              See note below about array storage convention for C.
  148.  
  149.              Before entry, the leading ( kl + ku + 1 ) by n part of the array
  150.              aaaa must contain the matrix of coefficients, supplied column by
  151.              column, with the leading diagonal of the matrix in row ( ku + 1 )
  152.              of the array, the first super-diagonal starting at position 2 in
  153.              row ku, the first sub-diagonal starting at position 1 in row ( ku
  154.              + 2 ), and so on.  Elements in the array aaaa that do not correspond
  155.              to elements in the band matrix (such as the top left ku by ku
  156.              triangle) are not referenced.  The following program segment will
  157.              transfer a band matrix from conventional full matrix storage to
  158.              band storage:
  159.  
  160.  
  161.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  162.                             DO 20 J = 1, N
  163.                                K = KU + 1 - J
  164.                                DO 10 I = MAX( 1, J - KU ), MIN( M, J + KL )
  165.                                   A( K + I, J ) = matrix( I, J )
  166.                          10    CONTINUE
  167.                          20 CONTINUE
  168.  
  169.              CCCC
  170.                          for ( j=0; j<n; j++ )
  171.                          {
  172.                                k = ku - j;
  173.                                for (i = MAX(0, j-ku); i < MIN(m, j+kl); i++ )
  174.                                      a(j*lda+k+i) = Matrix(j*ldm+i);
  175.                          }
  176.  
  177.              Unchanged on exit.
  178.  
  179.      llllddddaaaa     On entry, llllddddaaaa specifies the first dimension of A as declared in
  180.              the calling (sub) program.  llllddddaaaa must be at least ( kl + ku + 1 ).
  181.              Unchanged on exit.
  182.  
  183.      xxxx       Array of size at least ( 1 + ( n - 1 )*abs( incx ) ) when trans =
  184.              'N' or 'n' or NoTranspose and at least ( 1 + ( m - 1 )*abs( incx
  185.              ) ) otherwise.  Before entry, the incremented array xxxx must
  186.              contain the vector x.
  187.              Unchanged on exit.
  188.  
  189.      iiiinnnnccccxxxx    On entry, iiiinnnnccccxxxx specifies the increment for the elements of xxxx.
  190.              iiiinnnnccccxxxx must not be zero.
  191.              Unchanged on exit.
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ____GGGGBBBBMMMMVVVV((((3333FFFF))))                                                            ____GGGGBBBBMMMMVVVV((((3333FFFF))))
  203.  
  204.  
  205.  
  206.      bbbbeeeettttaaaa    On entry, bbbbeeeettttaaaa specifies the scalar beta. When bbbbeeeettttaaaa is supplied
  207.              as zero then yyyy need not be set on input.
  208.              Unchanged on exit.
  209.  
  210.      yyyy       Array of size at least ( 1 + ( m - 1 )*abs( incy ) ) when trans =
  211.              'N' or 'n' or NoTranspose and at least ( 1 + ( n - 1 )*abs( incy
  212.              ) ) otherwise.
  213.  
  214.              Before entry with bbbbeeeettttaaaa non-zero, the incremented array yyyy must
  215.              contain the vector y. On exit, yyyy is overwritten by the updated
  216.              vector y.
  217.  
  218.      iiiinnnnccccyyyy    On entry, iiiinnnnccccyyyy specifies the increment for the elements of yyyy.
  219.              iiiinnnnccccyyyy must not be zero.
  220.              Unchanged on exit.
  221.  
  222.  
  223. CCCC AAAARRRRRRRRAAAAYYYY SSSSTTTTOOOORRRRAAAAGGGGEEEE CCCCOOOONNNNVVVVEEEENNNNTTTTIIIIOOOONNNN
  224.        The matrices  are assumed  to be stored in a  oooonnnneeee ddddiiiimmmmeeeennnnssssiiiioooonnnnaaaallll CCCC aaaarrrrrrrraaaayyyy
  225.        in an analogous fashion as a Fortran array (column major). Therefore,
  226.        the element  A(i+1,j)  of matrix A  is stored  immediately  after the
  227.        element  A(i,j), while  A(i,j+1) is lda  elements apart from  A(i,j).
  228.        The element A(i,j) of the matrix can be accessed directly by reference
  229.        to  a[ (j-1)*lda + (i-1) ].
  230.  
  231.  
  232. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  233.           Jack Dongarra, Argonne National Laboratory.
  234.           Iain Duff, AERE Harwell.
  235.           Jeremy Du Croz, Numerical Algorithms Group Ltd.
  236.           Sven Hammarling, Numerical Algorithms Group Ltd.
  237.  
  238.  
  239. TTTTUUUUNNNNIIIINNNNGGGG
  240.           Optimized and parallelized for SGI R3000, R4x00 and R8000 platforms.
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.